package com.poi.tl.sample.quickstart.app.tags;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.Texts;
import com.poi.tl.sample.quickstart.consts.AppConsts;
import java.io.FileOutputStream;
import java.util.HashMap;
import org.springframework.core.io.ClassPathResource;

public class _2ComposeTextExport {

  public static void main(String[] args) throws Exception {
    ClassPathResource templateFile = new ClassPathResource(AppConsts.TAG_TEMPLATE_CLASS_PATH + "_2compose_text_template.docx");
    String outFile = AppConsts.EXPORT_PATH + "_2compose_text_template_output.docx";

    // 1 	compile 编译模板
    XWPFTemplate template = XWPFTemplate.compile(templateFile.getInputStream()).render(
        // 2 render 渲染数据
        new HashMap<String, Object>(){{
          put("name", "Sayi");

          // 写法 1
//          put("author", new TextRenderData("000000", "Sayi"));
//          put("link", new HyperlinkTextRenderData("website", "http://deepoove.com"));
//          put("anchor", new HyperlinkTextRenderData("anchortxt", "anchor:appendix1"));

          // 写法 2
          put("author", Texts.of("Sayi").color("000000").create());
          put("link", Texts.of("website").link("http://deepoove.com").create());
          put("anchor", Texts.of("anchortxt").anchor("appendix1").create());

          /**
           * 支持的属性如下：
           * 删除线
           * 粗体
           * 斜体
           * 颜色
           * 下划线
           * 字体
           * 字号
           * 背景高亮色
           * 上标或者下标
           * 间距
           */
        }});
    // 3 write 输出到流
    template.writeAndClose(new FileOutputStream(outFile));
  }

}
